"=================================================================================================================
" 设置关键的变量
" 把<LEADER>按键从“\”设置成空格
let mapleader=" "
" 避免终端显示问题
let &t_ut=''
" 设置不同模式下，显示不同的光标, 只有部分终端支持
let &t_SI="\<Esc>]50;CursorShape=1\x7"
let &t_SR="\<Esc>]50;CursorShape=2\x7"
let &t_EI="\<Esc>]50;CursorShape=0\x7"



"=================================================================================================================
" set命令
" 语法高亮
syntax on
"syntax off
" 设置行号
set number
" 设置相对行号
"set relativenumber
set norelativenumber
" 高亮当前行
set cursorline
" 设置自动换行
set nowrap
" normal 模式下显示命令
set showcmd
" 输入命令时，按下tab可以显示一个高亮行，使用tab在选项之间跳转
set wildmenu  
" 搜索时高亮搜索到的内容
set hlsearch
" 在输入搜索内容时，就直接高亮匹配到的内容, 这会占用更多的资源
set incsearch
" 搜索时，忽略大小写
set ignorecase
" 搜索时，如果输入了大小写混合的字符, 就会忽略ignorecase的设置，转而去搜索对应的字符串
set smartcase

" 大部分插件要求的配置，不考虑vi，只考虑ivm
set nocompatible
" 文件类型识别功能
filetype on
filetype indent on
filetype plugin on
filetype plugin indent on
" 设置编码
set encoding=utf-8
" 设置缩进
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
" 行尾字符显示出来，空格会显示成一个小方块，tab会显示成三角形
set list
"" 使用help listchars来获取帮助信息，定义更多的特殊字符显示
set listchars=tab:△\ ,trail:□
" 保持光标所在行上方或下方始终有5行内容, 直到文件尾部
set scrolloff=5
" 更好的缩进
set tw=0
set indentexpr=
" 设置退格键，在行首时直接回到行尾
set backspace=indent,eol,start
" 按照缩进字符来进行折叠
set foldmethod=indent
set foldlevel=99
" 什么时候显示最下边的状态栏, 2表示永远显示，1表示有两个以上窗口显示
set laststatus=2
" 当打开文件时，会直接切换当前vim进程的工作目录到文件所在的目录下
set autochdir
" 打开之前打开过的文件，光标虎自动跳转到之前的位置
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif




"=================================================================================================================
" 刚打开vim时，vim自动执行的命令
" 如果打开新文件时仍然会高亮显示上次搜索匹配到的内容, 每次打开时执行:nohlsearch就可以了, exec后的命令会在每次打开文件时自动执行
exec "nohlsearch"

"=================================================================================================================
" 命令快捷键
map s <nop>
map S :w<CR>

map Q :q<CR>
map QQ :q!<CR>
map AQ :qa<CR>
map AQQ :qa!<CR>

" 按下R直接重新刷新用户配置文件
map R :source $MYVIMRC<CR>

" <LEADER> + <CR> 取消搜索高亮
map <LEADER><CR> :nohlsearch<CR>

" 分屏
map s <nop>
" 设置分屏从上下分屏切换成左右分屏
map sJ <C-w>t<C-w>K
" 设置分屏从左右分屏切换成上下分屏
map sH <C-w>t<C-w>H
"map w <nop>
map sl :vsplit<CR><C-w>l
map sh :vsplit<CR><C-w>h
map sk :split<CR><C-w>k
map sj :split<CR><C-w>j
" 向右方或上方交换窗口
map sr <C-w>r
" 向左方或下方交换窗口
map sR <C-w>R
" 交换窗口
map sx <C-w>x
map <LEADER>l <C-w>l
map <LEADER>h <C-w>h
map <LEADER>k <C-w>k
map <LEADER>j <C-w>j
" 上下左右键，设置分屏增大缩小
"map <up> :res +5<CR>
"map <down> :res -5<CR>
"map <left> :vertical res +5<CR>
"map <right> :vertical res -5<CR>


" 标签页
map tn :tabe<CR>
map tl :+tabnext<CR>
map th :-tabnext<CR>

"=================================================================================================================
" 快捷键映射

" 快速上下翻页
noremap K 5k
noremap J 5j

" 搜索到后，放到中间
noremap n nzz
noremap N Nzz






